package com.wn.excel.mapper;

import com.wn.excel.model.Column;
import com.wn.excel.model.Table;
import com.wn.excel.model.TableIndex;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @FileName: TableMapper
 * @Description: 表结构mapper
 * @Author: MaWenHao
 * @Created: 2020/3/2 - 18:27
 * @Version: V1.0
 * @Company: 东方微银科技（北京）有限公司
 */
@Component
public interface TableMapper {

    /**
     * @author MaWenHao
     * @description 查询所有表名
     * @date 2020/3/2
     * @param
     * @return 表信息集合
     */
    List<Table> selectAllTableNames();

    /**
     * 根据表名查询表结构
     * @param tableName 表名
     * @return 表结构
     */
    List<Column> selectTableStructureByTableName(String tableName, String username);

    /**
     * 根据表名查询主键
     * @param tableName 表名
     * @return 主键
     */
    List<String> selectPrimaryKeyByTableName(String tableName);

    /**
     * 根据表名查询总记录数
     * @param tableName 表名
     * @return
     */
    long selectTotalCountByTableName(@Param("table_name") String tableName);

    /**
     * 根据表名和用户名查询索引信息
     * @param tableName
     * @param username
     * @return
     */
    List<TableIndex> selectIndexByTableNameAndOwner(@Param("tableName") String tableName, @Param("username") String username);
}
